package com.spsoft.vatoutinv.model.vo.matchflow;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.spsoft.vatoutinv.annotation.Translate;
import com.spsoft.vatoutinv.constants.DictConstant;
import com.spsoft.vatoutinv.constants.TranslateConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 发票匹配流水查询页面-发票明细信息
 *
 * @author : chenxudong
 * @date : 2024/6/28 10:17
 */
@Data
@ApiModel(value = "发票匹配流水查询页面-返回明细对象")
public class VmsMatchFlowSelectItemVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Long iviid;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "应税商品及劳务")
    private String spmc;

    /**
     * 规格型号
     */
    @ApiModelProperty(value = "规格型号")
    private String ggxh;

    /**
     * 计量单位
     */
    @ApiModelProperty(value = "计量单位")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_JLDW)
    private String jldw;

    /**
     * 购买数量
     */
    @ApiModelProperty(value = "数量")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal gmsl;

    /**
     * 单价（不含税）
     */
    @ApiModelProperty(value = "单价（不含税）")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal dj;

    /**
     * 不含税金额
     */
    @ApiModelProperty(value = "金额（不含税）")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal je;

    /**
     * 税率
     */
    @ApiModelProperty(value = "税率")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal sl;

    /**
     * 税额
     */
    @ApiModelProperty(value = "税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal se;

    /**
     * 发票和流水关联关系表主键
     * 判断明细匹配状态的时候使用
     */
    @ApiModelProperty(hidden = true)
    private Long nrmivid;

    /**
     * 发票匹配状态
     */
    @ApiModelProperty(value = "发票匹配状态")
    private String itemPpzt;

}
